1. Field of the Invention
This invention relates to digital communications systems and more particularly to an apparatus and method having the capability to transmit or receive a partial byte in the final byte position of the information field so that the final bits, if they do not completely fill up the final byte character, can still be accommodated using the partial byte capability.
2. Description of the Prior Art
There is a great network of telecommunications links that span the industrialized countries of the world. This network can be utilized by computer systems to transmit and receive data over communication lines. Data transmission can be either synchronous or asynchronous which is also often known as start-stop transmission. With asynchronous transmission one character is sent at a time by initializing first with a "start" signal and then ending with a "stop" signal. The pulses between the "start" and "stop" signal identify the bits of which the character is composed. As can readily be seen, asynchronous transmission is rather slow. It is desirable therefore to transmit characters continuously wherein the bits of one character are followed immediately by those of the next. Between these characters there are no "start" or "stop" signals and no pauses. The stream of characters of this type is generally divided into blocks or messages which may in turn be subdivided into characters. All of the bits of the message are transmitted at equal time intervals and the transmitting and receiving machines must be exactly in synchronization for the duration of the message, so that the receiving machine knows which is the first bit and thus recognize which are the bits of each character. In earlier forms of prior art, a synchronous message generally started with a sequence of synchronization characters (usually 3 or 4), and ended with a unique "end of message" character, often followed by a character or characters containing longitudinal parity or cyclic redundancy check data, enabling the receiver to verify the integrity of the data in the message by means well known to the art. Data within the message was in the form of groups of equal-length (typically 8-bit characters (often called bytes), with special characters used to separate header, text and other logical blocks of data. Systems of this type are inefficient or cumbersome in operation when it is desired to transmit binary (non-byte-oriented or non-text-oriented) data over the communications network. An example of non-text type data would be analog data which has been converted to binary data for transmission. Another example would be the transmission of computer programs where the native word size of the computer's memory (normally corresponds to the number of bits in a typical machine "instruction" - e.g., 36-bit) is not readily divisible into the 8-bit bytes (or 7 bits plus a parity bit) normally used for transmission. One problem is, therefore, that binary (non-text) data often is not conveniently divisible into bytes for transmission. Another problem is that binary data, by its very nature, may be presumed to assume any possible combination of values of bits (ones and zeros), whereas byte-oriented data organized for transmission over communications lines has certain bit combinations (i.e., character "values") reserved for special control functions. These control characters are the synchronization, end of message, and blocking characters referred to earlier. The obvious danger in transmitting binary data in such a system is that the binary data may by coincidence assume the combination of bits associated or assigned to a communications control character (because with binary data no bit combinations are reserved or precluded). This could cause the receiver to initiate control action prematurely or improperly.
Recently, a new class, or type of data transmission system has begun to evolve. This is the so-called "bit-oriented" control procedure. It exists in various forms and by various trade names as offered by individual manufacturers. A standardized version of a bit-oriented procedure is being developed and documented by the American National Standards Institute, Inc. (ANSI), 1430 Broadway, New York, N.Y. 10018. It is known as ADCCP (Advanced Data Communication Control Procedure). These bit-oriented transmission procedures offer particular advantages for the transmission of binary or non-text-oriented data. This is because the discipline or procedure eliminates (at leaat theoretically) the two problems discussed in the previous paragraph. A technique implicit in the ADCCP discipline eliminates the possibility that random patterns of the data bits may inadvertently assume the bit configurations of communications control characters. The technique is called "zero bit insertion/deletion" and will be discussed later. In addition, the data in the information portion of an ADCCP frame (message) is completely arbitrary in nature. It is not restricted to a sequence of fixed-length bytes (characters). This is an ideal situation for the transmission of binary data, since presumably a "string" of binary data of an arbitrary number of bits could be directly transmitted without regard for blocking into fixed-length bytes. Theoretically such is the case. To be practical, however, the world of computers is a byte-or word-oriented world. All of the registers, data paths, arithmetic units and storage media are constructed and organized to handle fixed-length entities. Such is also the case with computer data communications channels. Therefore binary data will inevitably be positioned, or blocked, into fixed-length bytes for convenience of storage, processing and transmission. In doing this, however, there may be an insufficient number of bits to completely fill the final byte. One solution to this problem might be to pad the final byte with "fill" bits so as to make it a full byte. This involves overhead on the part of the transmitting computer, and the receiving computer, to add and later strip the fill bits. It also involves overhead on the communications channel to transmit the fill bits. Since it is desired to use computers and communication channels efficiently and since many such partial bytes may be encountered in message transmissions, it is desirable to transmit only those bits comprising the partial byte for greater utilization of the communication channel.